package com.yun.dz.control;

import com.sun.xml.internal.bind.v2.TODO;
import com.yun.dz.bean.UserBean;
import com.yun.dz.model.UserLoginModal;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "UserLoginServlet", urlPatterns = {"/UserLoginServlet"})
public class UserLoginServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 0、设置rquest和response的编码格式--防止中文乱码

        // 解决中文乱码的问题
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");

        // 1、使用request的getParameter方法获取表单数据

        // 获取用户端页面发送的表单数据
        // 用户名
        String strAdminName = request.getParameter("adminName");// 参数名要和form表单中的name属性值保持一致
        // 密码
        String strAdminPsw = request.getParameter("adminPsw");
        // 输出到控制台
        System.out.println("登录用户名：" + strAdminName + ";密码：" + strAdminPsw);

        // 2、调用modal层进行业务逻辑处理（modal层再调用数据库操作进行数据库处理）

        UserBean userB = new UserBean();
        // 将从request中获取的表单数据设置给参数实体类
        userB.setUserName(strAdminName);
        userB.setUserPsw(strAdminPsw);
        // 创建modal业务逻辑处理的实例类对象
        UserLoginModal userM = new UserLoginModal();
        // 登录业务的逻辑验证处理
        boolean isOk = userM.isLogined(userB);

        // 3、根据modal层的业务逻辑处理结果，进行不同页面跳转显示（可以跳转到jsp页面，也可以跳转到servlet进行处理）
        if (isOk) {
            // 登录成功
            // 将需要在页面上显示的数据缓存到jsp的四大作用域中；一般常用的是 request和session
            request.getSession().setAttribute("loginedName", strAdminName);  // 缓存到session作用域对象中
            // 转发   logined.jsp页面(转发或重定向 二选一)
            request.getRequestDispatcher("WEB-INF/logined.jsp").forward(request, response);
            // 重定向   logined.jsp页面(转发或重定向 二选一)
            //response.sendRedirect("logined.jsp");
        } else {
            // 登录失败，回到登录页面
            // 重定向   logined.jsp页面(转发或重定向 二选一)
            response.sendRedirect("index.jsp");
        }
    }
}